package pres.lnk.learn.designpattern.s_memento;

/**
 * <p>备忘录模式</p>
 * 保存一个对象的某个状态，以便在适当的时候恢复对象。
 * @Author lnk
 * @Date 2018/6/5
 */
public class Main {
    public static void main(String[] args) {
        Originator originator = new Originator();
        originator.setState("状态1");
        Originator.Memento memento = originator.createMemento();
        System.out.println("设置状态为：" + originator.getState());

        System.out.println();
        System.out.println("保存状态");
        Caretaker caretaker = new Caretaker();
        caretaker.setMemento(memento);

        originator.setState("状态2");
        System.out.println("设置状态为：" + originator.getState());

        System.out.println();
        originator.restoreMemento(caretaker.getMemento());
        System.out.println("再恢复状态为上一个状态：" + originator.getState());
    }
}
